
/*
 *    MCreator note: This file will be REGENERATED on each build.
 */
package com.kamenrider.adventureaffiliated.init;

import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.event.entity.EntityAttributeCreationEvent;

import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.Entity;

import com.kamenrider.adventureaffiliated.entity.TophatpuppyEntity;
import com.kamenrider.adventureaffiliated.entity.Fmziobianshentexia1Entity;
import com.kamenrider.adventureaffiliated.entity.BasketballeffectsEntity;
import com.kamenrider.adventureaffiliated.entity.AnotherBuild2019Entity;
import com.kamenrider.adventureaffiliated.entity.AnotherBuild2017Entity;
import com.kamenrider.adventureaffiliated.RiderAdventureAffiliatedMod;

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class RiderAdventureAffiliatedModEntities {
	public static final DeferredRegister<EntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.ENTITIES, RiderAdventureAffiliatedMod.MODID);
	public static final RegistryObject<EntityType<TophatpuppyEntity>> TOPHATPUPPY = register("tophatpuppy", EntityType.Builder.<TophatpuppyEntity>of(TophatpuppyEntity::new, MobCategory.MONSTER).setShouldReceiveVelocityUpdates(true)
			.setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(TophatpuppyEntity::new).fireImmune().sized(0.6f, 1.8f));
	public static final RegistryObject<EntityType<Fmziobianshentexia1Entity>> FMZIOBIANSHENTEXIA_1 = register("fmziobianshentexia_1", EntityType.Builder.<Fmziobianshentexia1Entity>of(Fmziobianshentexia1Entity::new, MobCategory.MONSTER)
			.setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(Fmziobianshentexia1Entity::new).fireImmune().sized(0.6f, 1.8f));
	public static final RegistryObject<EntityType<AnotherBuild2019Entity>> ANOTHER_BUILD_2019 = register("another_build_2019", EntityType.Builder.<AnotherBuild2019Entity>of(AnotherBuild2019Entity::new, MobCategory.MONSTER)
			.setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(AnotherBuild2019Entity::new).fireImmune().sized(0.6f, 1.8f));
	public static final RegistryObject<EntityType<BasketballeffectsEntity>> BASKETBALLEFFECTS = register("basketballeffects", EntityType.Builder.<BasketballeffectsEntity>of(BasketballeffectsEntity::new, MobCategory.MONSTER)
			.setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(BasketballeffectsEntity::new).fireImmune().sized(0.6f, 1.8f));
	public static final RegistryObject<EntityType<AnotherBuild2017Entity>> ANOTHER_BUILD_2017 = register("another_build_2017", EntityType.Builder.<AnotherBuild2017Entity>of(AnotherBuild2017Entity::new, MobCategory.MONSTER)
			.setShouldReceiveVelocityUpdates(true).setTrackingRange(64).setUpdateInterval(3).setCustomClientFactory(AnotherBuild2017Entity::new).fireImmune().sized(0.6f, 1.8f));

	private static <T extends Entity> RegistryObject<EntityType<T>> register(String registryname, EntityType.Builder<T> entityTypeBuilder) {
		return REGISTRY.register(registryname, () -> (EntityType<T>) entityTypeBuilder.build(registryname));
	}

	@SubscribeEvent
	public static void init(FMLCommonSetupEvent event) {
		event.enqueueWork(() -> {
			TophatpuppyEntity.init();
			Fmziobianshentexia1Entity.init();
			AnotherBuild2019Entity.init();
			BasketballeffectsEntity.init();
			AnotherBuild2017Entity.init();
		});
	}

	@SubscribeEvent
	public static void registerAttributes(EntityAttributeCreationEvent event) {
		event.put(TOPHATPUPPY.get(), TophatpuppyEntity.createAttributes().build());
		event.put(FMZIOBIANSHENTEXIA_1.get(), Fmziobianshentexia1Entity.createAttributes().build());
		event.put(ANOTHER_BUILD_2019.get(), AnotherBuild2019Entity.createAttributes().build());
		event.put(BASKETBALLEFFECTS.get(), BasketballeffectsEntity.createAttributes().build());
		event.put(ANOTHER_BUILD_2017.get(), AnotherBuild2017Entity.createAttributes().build());
	}
}
